Changelog

v1.4.3

  • mpi4py is now optional, and only required for MPI simulations.

v1.4.2

  • Update build server to new jenkins.

v1.4.1

  • Merge develop and master for new public version.

v1.4.0

  • Update to python3.11.

  • Update dependencies of qtealeaves and qredtea accordingly.

v1.3.3

  • Fixing bug with statevector retrieval in the case 20<num_qubits<30.

  • Fixing consistency of “time” and “measurement_time” observables between Qiskit and Qcircuit.

  • Preparing for next public release of qtealeaves.

  • Fixes for cpu+gpu mode.

  • Disabling tensor compiler by default option (due to issues in some very specific cases).

v1.3.2

  • Special handling for linter removed.

v1.3.1

  • License copyright update and year update

v1.3.0

  • Removing Fortran backend.

  • Removing strawberryfields circuit interface, since it was dependent on the Fortran backend.

v1.2.7

  • Fixed bug in the documentation requirements.

v1.2.6

  • Fixed bug in the documentation deployment.

v1.2.5

  • Introduced isort and unittest for checking its usage.

v1.2.4

  • Implementing completeness test of examples in unittest.

v1.2.3

  • Fix MPI unittests

  • Update qtealeaves, operators could not be pickled in MPI send.

  • Udpdate qredtea, e.g., tensorflow bugfix vacuumstate.

  • Excluding next minor from setup.py and requirements.txt, i.e., >=X.Y.Z,<X.Y+1.0

v1.2.2

  • Remove references to .ops in operators.

v1.2.1

  • Fix import of _AbstractTN (has been moved inside qtealeaves).

  • Update version of dependencies qtealeaves and qredtea.

  • Disable unittest on greedy probabilities.

  • Update versions of linter and black.

v1.2.0

  • Implemented different tensor classes

  • QCBackend now has its own file

  • Update to qiskit 1.0.0

v1.1.4

  • Fixed the AbstractTN import bug.

v1.1.3

  • Solved bug for running fortran parallel simulations

v1.1.2

  • Fix wrong merge, updating qtealeaves version

v1.1.1

  • Docs Bugfix

  • Update to latest patched qtealeaves

v1.1.0

  • Stable version in master

v1.0.2

  • Added a MPISetting class to select the type of isometrization you want to use when running in parallel with mpi;

  • Bugfix for MPI approach.

v1.0.1

  • Added benchmarks

  • The qmatchatea Qcircuit class can now be passed to run_simulation

  • Implemented application of MPOs, i.e. general multi-qubit gates, to the emulator

  • Now you can pass the entire mpi_command for fortran parallel simulations, using QCBackend(mpi_command=[“mpirun”, “something_else”]).

  • Greatly enhanced examples;

  • Bugfix for python mpi;

  • Simplified save/read results for the SimulationResults class. The methods Changed name for consistency, save_results -> save_pickle, load_results -> read_pickle.

v1.0.0

  • Removed mock_fortran simulation, now the simulation in python does not write the inputs in the same fashion of a fortran simulation

  • Updated to the v1.0.0 of qtealeaves, using tensors

  • Created utils folder

  • Implemented automatic selection of device

  • Implemented automatic selection of precision

  • Implemented automatic selection of svd decomposition

  • Parallel execution of the MPS across multiple processes is now possible in python

  • Implemented checkpoints in python

  • Implemented mid-circuit measurements in python

  • Added memory tracker in simulations

v0.5.2

  • Implemented pypi installation.

  • Bugfix for documentation not showing online.

  • Improved and updated documentation.

  • Bugfix for save_result(), load_result() methods of simulation_results class.

v0.4.13

  • Updated examples to current version

  • The examples are now run during the unittests, and gives an error if they do not run.

v0.4.12

  • Bugfix for checkpoints construction and default folder (now inside the default simulation folder )

  • Bugfix for the tensor compiler

v0.4.11

  • Bugfix construction nml file with checkpoints.

  • Adapt logic initial state.

  • Export py_quantum_matcha_tea/tests folder in conan recipe.

v0.4.10

  • QcMps is renamed in QCEmulator since now it can accept different TN ansatzes

  • Added new argument ansatz in QCBackend to select which ansatz (either MPS or TTN). The TTN anstaz only works on python cpu at the moment.

  • Removed postprocessing with quantum registers of the bond entropy because it does not make sense with the new description of the bond entorpy

  • Added example to test the difference in performances between TTNs and MPS

  • singval_mode is renamed to trunc_tracking_mode

v0.4.9

  • Fixed bug due to argparse when launching run_simulation from jupyter noteboos.

  • Changed path of the _get_layered_instruction function such that it works even with the latest qiskit

  • Removed num_clbits argument from QcMps since it was useless and caused errors.

  • Added Pauli operators (“X”, “Y”, “Z”) as default in QCOperators.

  • Added a new utility class SimpleHamiltonian to make it easier to create WeightedSum observables. In the future a SimpleHamiltonian will be directly passed to the observables.

  • Added the computation of the lower bound of the fidelity in the results

  • Changed the default for the singval_mode from M to C, that is better

v0.4.8

  • Added VQE optimization example

v0.4.7

  • Allow passing command line arguments to be parsed by argparse to run simulation method, which is necessary if consuming package has its own argparse.

v0.4.6

  • Fixed requirements and warnings

  • Fixed bug in random_quantum_circuit.py example

  • Added notice in the README based on cupy installation

v0.4.5

  • Update dependency of qtealeaves to v0.4.8

v0.4.4

  • Update dependency of qtealeaves.

  • Comment sphinx gallery due to problems in CI/CD

v0.4.3

  • Link to documentation on public repository.

v0.4.2

  • Added mirroring to public repository

v0.4.1

  • Implemented black formatter for the code, plus pre-commit hooks

v0.4.0

  • Execute update from tn_py_frontend v0.3.32 to qtealeaves v0.4.2 which requires renaming all imports and breaks backwards compatibility.

v0.3.5

  • Solved bug in the generation of the docs due to sphinxgallery

  • Introduced the new QCBackend class to select the backend of the simulation

v0.3.4

  • Implemented classically controlled gates from a qiskit circuit

  • Implemented initial state for qiskit simulations

  • Implemented tensor compiler for qiskit circuits

  • Added example for the convergence study

  • Added GPY approach, which implement a GPU backend through cupy. The presence of a GPU/cupy is not mandatory.

  • Added MPI example, fixed bug in the MPI data parallel approach

v0.3.2

  • Fixed path for TNConvergenceParameters following tn_py_frontend

  • Fixed path error when working with serial approach

v0.3.1

  • Fixing naming issues for qmatchatea

  • Add integration tests

v0.3.0

  • Renamed in qmatchatea

  • Fixed bug when using the unittest from an interactive interface after the addition of argparse

  • Fixed bug for which the name of the input file was not appended when using parallel fortran approach

  • Deleted lines that resulted in an error, that previously were meant for debug

v0.2.3

  • Added QCircuit class Circuit

  • Added example on how to use the Qcircuit class

  • Added support for custom operations on the quantum circuit, with also intermediate observables measurements QCOperations

v0.2.2

  • Added possibility of installing with the fortran executables, by running the installer.py file.

  • Updated the README to take into account the above possibility

  • Added the possibility of using command line arguments that overwrites the approach and the executable used in the simulation at runtime, if the run_simulation() function is used.

v0.2.1

  • Improved documentation

  • Added examples and sphinx gallery

v0.2.0

  • Moved observables from qcomps to tn_py_frontend

  • All measurable quantities are now observables

  • Removed the possibility of performing projective measurement directly from the interface, you now need to use an observable.

  • Removed the possibility of measuring the entanglement directly from the interface, you now need to use an observable.

  • Removed the possibility of performing statevector measurement directly from the interface, you now need to use an observable and save the MPS state. From that state you can compute the statevector